МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
іНСТИТУТ КОМП’ютерних НАУК та ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Кафедра “Системи автоматизованого проектування”
Звіт до лабораторної роботи № 4
«Обробка окремих слів: підрахунок слів та лексична база даних англійської мови»
з дисципліни “Комп’ютерна лінгвістика”
Виконала:
ст. гр. ПРЛ-1
Львів-2008
Мета: вивчення основ програмування на мові Python, ознайомлення зі способами підрахунку слів та лексичною базою даних англійської мови WordNet.
Результати отримані в попередньому прикладі, які відповідають певній абстрактній структурі – набору елементів і їх частот – називають частотним розподілом. Оскільки, при роботі з текстом часто потрібно здійснювати подібні обчислення то в NLTK реалізовано окремий клас FreqDist(). Використовуючи цей клас попередній приклад можна переписати наступним чином:
В таблиці 1 наведені, реалізовані в NLTK, методи властиві частотному розподілу.
Таблиця1
Отримані, у попередніх прикладах, результати не надто цікаві. Можливо більш інформативним буде список найчастотніших слів (tokens). Об’єкт FreqDist є певного виду словником і тому можна легко побудувати пари ключ-значення і відсортувати їх по спаданню, як показано нижче:
Зазначимо, що функція sorted() повертає новий відсортований список тем, які є її першим аргументом. Другий аргумент key визначає функцію одного аргументу, яка використовується для встановлення ключа, за яким будуть порівнюватися елементи списку. itemgetter(1) вказує на те, що порівнюватися елементи списку, які є кортежами, будуть за елементами кортежу з індексом 1. Третій аргумент reverse=True вказує на те, що сортування буде проводитись в зворотному порядку. В результаті буде отримано список в якому слова з максимальною частотою будуть першими.
Стилістика, це доволі широкий термін, який відноситься і до літературних жанрів і до інших різноманітних випадків вживання мови. Можна проаналізувати набір документів (слів), які згруповані за жанрами і спробувати дізнатися якусь інформацію про використання слів. Наприклад таблиця 2 показує кількість різних (за часовим параметром) модальних дієслів в різних частинах корпусу.
Зауважимо, що найбільшу частоту в жанрі репортажу має модальне дієслово will, вказуючи нам на майбутнє, разом з тим найбільш частотним дієсловом в жанрі романтика є could що вказує на можливість.
Можна також виміряти лексичну різноманітність жанру обчисливши співвідношення типів слів і tokens слів, як показано в таблиці 3. Жанри з нижчою різноманітністю мають більше значення відношення token на тип. Гумористична проза майже вдвічі лексично бідніша ніж романтична проза.
Можна здійснювати різноманітні дослідження здійснюючи подібні підрахунки слів. Одним з напрямків корпусної лінгвістики є підрахунок і обробка результатів підрахунку слів.
Таблиця 2
Таблиця 3
WordNet, це семантично орієнтований словник англійської мови, подібний до традиційних тезаурусів але з більш багатою структурою. У WordNet слова групуються у набори синонімів – синсети, кожен із своїм визначенням і зв’язками з іншими синсетами. WordNet 3.0 розповсюджується разом з NLTK і містить 145000 синсетів. Хоча WordNet розроблявся для психолінгвістики - цей словник широко використовується в NLP та в задачах інформаційного пошуку
Розглянемо наступне речення:
Якщо замінити слово motorcar на automobile зміст речення не зміниться.
Можна вважати, що оскільки заміна слів не вплинула на зміст речень то ці слова синоніми. Для одержання значення слова потрібно вибрати до якої частини мови воно належить. WordNet містить чотири словники (іменники, дієслова, прикметники, прислівники ).
Завдання 5.
>>>import nltk
>>>from nltk import corpus
>>>sl=[]
>>>for categories in nltk.corpus.brown.categories():
ct = categories
sl=[]
for words in nltk.corpus.brown.words(categories=ct):
sl.append(words)
...